home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- import java.awt.datatransfer.DataFlavor;
- import java.awt.datatransfer.Transferable;
- import java.awt.datatransfer.UnsupportedFlavorException;
- import java.beans.PropertyDescriptor;
- import java.io.IOException;
- import java.lang.reflect.Method;
- import sun.reflect.misc.MethodUtil;
-
- class TransferHandler$PropertyTransferable implements Transferable {
- JComponent component;
- PropertyDescriptor property;
-
- TransferHandler$PropertyTransferable(PropertyDescriptor var1, JComponent var2) {
- this.property = var1;
- this.component = var2;
- }
-
- public DataFlavor[] getTransferDataFlavors() {
- DataFlavor[] var1 = new DataFlavor[1];
- Class var2 = this.property.getPropertyType();
- String var3 = "application/x-java-jvm-local-objectref;class=" + var2.getName();
-
- try {
- var1[0] = new DataFlavor(var3);
- } catch (ClassNotFoundException var5) {
- var1 = new DataFlavor[0];
- }
-
- return var1;
- }
-
- public boolean isDataFlavorSupported(DataFlavor var1) {
- Class var2 = this.property.getPropertyType();
- return "application".equals(var1.getPrimaryType()) && "x-java-jvm-local-objectref".equals(var1.getSubType()) && var1.getRepresentationClass().isAssignableFrom(var2);
- }
-
- public Object getTransferData(DataFlavor var1) throws UnsupportedFlavorException, IOException {
- if (!this.isDataFlavorSupported(var1)) {
- throw new UnsupportedFlavorException(var1);
- } else {
- Method var2 = this.property.getReadMethod();
- Object var3 = null;
-
- try {
- var3 = MethodUtil.invoke(var2, this.component, (Object[])null);
- return var3;
- } catch (Exception var5) {
- throw new IOException("Property read failed: " + this.property.getName());
- }
- }
- }
- }
-